Dados do Relatório

Código utilizado

Neste notebook estarão presentes os códigos que foram utilizados para gerar os gráficos dos dados analisados durante a elaboração do relatório. Para isto, foram utilizadas as bibliotecas: pandas, numpy, matplotlib, ploty e seaborn. As duas primeiras fornecem, principalmente, ferramentas para a análise de dados, enquanto matplotlib e seaborn são voltadas à geração dos gráficos. Já a ploty será utiliza para gerar um mapa do Brasil, contendo neste informações relevantes para as análises. Cada trecho de código teremos a explicação de dois pontos principais:

Lógica de implementação

Além da demonstração do código, também seguirá uma explicação da lógica utilizada para gerar e plotar as informações requeridas para análisar determinada hipótese.

Tratamento dos dados

Por último, sempre que relevante, será feita também uma explicação do tratamento dos dados que foi utilizado para ser possível extrair a informação da maneira mais clara e direta possível.

Importando as bibliotecas que serão utilizadas e configurando o notebook

Definindo algumas funções utilizadas durante as análises

Muitas vezes dados relevantes foram encontradas em arquivos csv que continham a identificação dos municípios através do seu código. Porém, como frequentemente uma estratégia mais interessante seria analisar a região de cada município, criei a função 'region_index' para, a partir do prefixo, definir a região. A relação entre o prefixo e a região foi definida com base nas informações de códigos do ibge.

A função 'set_region' foi definida para realizar essa substuição, na tabela csv, do indice da região por sua respectiva região.

A função 'set_rede', utilizada para tratar os dados da analise de ensino, tem por objetivo identificar se uma instituição pertence a esfera pública ou privada. Para isso, caso a instituição seja municipal, estadual ou federal, setamos o atributo 'rede' == 'publica'.

Gráfico de barras da taxa bruta de matrícula

O primeiro e mais simples gráfico utilizado no relatório é um gráfico de barras para demonstrar a diferença nas taxas de crianças matriculadas em pré-escolas nas diferentes regiões do Brasil. Para isso, utilizei a base de dados do ibge: 'basedosdados.br_abrinq_oca.primeira_infancia_municipios', encontrada no site base dos dados [https://basedosdados.org/]. Os dados contendo informações de interesse foram salvos como 'taxa_bruta_mais_linhas.csv'. Carregando os dados e observando suas linhas iniciais temos:

Trocando os indices dos municipios por suas regiões

Calculando a media municipal de cada regiao e montando um data frame com essas medias

Como demonstra o código acima, o tratamento de dados aqui utilizado consistiu em separar os municípios por região e, ao calcular a taxa bruta total em cada localidade, dividí-la pelo número de munícipios da região. Assim, obtemos a taxa bruta média por região, que nos permitiu construir o data frame 'regiões_df', para posteriormente usá-lo como base para a criação do gráfico de barras seguinte.

Gerando então um gráfico da taxa bruta média por região

Gráfico de dispersão de notas

Um outro gráfico do relatório compara o ensino da rede pública e privada com dados escolares obtidos na base "basedosdados.br_inep_ideb.escola", encontrada no site base dos dados [https://basedosdados.org/]. Aqui o objetivo é demonstrar a diferença do conhecimento médio na área de matemática entre alunos da rede pública e de insituições privadas. O principal fator para demonstrar a dissemelhança são as notas saeb de matemática. Lembrando que saeb significa Sistema de Avaliação da Educação Básica. Os dados de interesse para a análise foram salvos em 'medias_data', carregando estes dados e observando suas linhas iniciais temos:

Modificando a coluna 'rede'

Como a meta desta análise é comparar as notas das instituições públicas com as notas das instituições privadas, na coluna 'rede' vamos trocar o identificador por 'publica' sempre que aparecer 'municipal', 'estadual' ou 'federal'.

Escolhendo os dados a serem analisados

De acordo com o Inep, o Sistema de Avaliação da Educação básica é um exame voltado para as escolas da esfera pública, logo o número de escolas privadas que realizam este teste é muito menor que o de escolas da rede pública, essa informação se encontra em [https://academia.qedu.org.br/prova-brasil/o-que-e-a-prova-brasil/]. Dessa maneira, como existem somente cerca de 1700 escolas privadas nos dados analisados, selecionarei 2 mil escolas públicas dos anos de 2005, 2009, 2015 e 2019 (totalizando 8 mil escolas públicas), para comparar as notas médias na prova saeb de matemática dessas escolas com as particulares.

Gerando o gráfico de dispersão de notas

Gráfico da diferença salarial

Uma fonte importante de informações para a análise feita no relatório é entender melhor sobre a remuneração dos docentes. Nesse aspecto, seria fundamental compreender quais são as faixas salariais mais comuns dos profissionais da educação, assim como qual o impacto na remuração, destes docentes possuírem ou não formação superior. Os dados analisados para a construção deste gráfico foram encontrados na base 'basedosdados.br_inep_indicadores_educacionais.brasil_remuneracao_docentes', presente no site [https://basedosdados.org/]. Os dados a serem analisados foram salvos em 'remuneracao_data', carregando esses dados e observando suas linhas iniciais:

Escolhendo os dados a serem analisados

Para entendermos o cenário atual, é interessante observarmos a média salarial não no ano de 2021 mas sim num período anterior, por isso, para estabelecer a comparação citada anteriormente, foi aqui escolhido o ano de 2014. Vamos começar selecionando os dados referentes ao ano de 2014 em relação aos docentes sem e com ensino superior completo.

Vamos agora observar estes conjuntos de dados para tentar identificar faixas de salário médio dos profissionais com e sem ensino superior completo.

Podemos notar que aproximadamente 160.000 docentes recebem por volta de 1700 reais mensalmente por uma jornada de 40 horas semanais. Da mesma maneira, cerca de 320.000 recebem em torno de 2150 reais mensais. Assim, podemos criar um dicionário contendo faixas salariais médias, que posteriormente será usado para formar o gráfico de Kernel Density.

Seguindo um raciocínio análogo ao anterior, criamos um dicionário com as faixas salariais dos funcionários com ensino superior completo.

Tendo em mãos agora todas as faixas salariais requeridas, podemos criar um data frame para cada dicionário.

Gerando o gráfico de densidade

Gráfico da porcentagem de professores por rede

É importante também buscarmos, ainda na análise dos docentes, a relação entre a rede de ensino do professor e a remuneração média recebida nesta. Para isto iremos usar a mesma base de dados descrita anteriormente, porém agora, como amostra, tomaremos a remuneração dos docentes no ano de 2015. Como já vimos que existe uma considerável diferença entre o salário dos professores com ou sem ensino superior, vamos agora analisar a distribuição salarial apenas entre os profissionais com ensino superior. Carregando os dados a serem analisados em "remuneracao_2015_com_superior" e observando este conjunto:

Escolhendo os dados a serem analisados

Para vizualizarmos melhor as informações trazidas pelo gráfico, vamos escolher 4 categorias da coluna rede e representarmos, num gráfico de setores, quantos profissionais atuam em cada área. Escolhemos então as categorias: privada, municipal, estadual e federal.

Gerando o gráfico de setor circular

Gráfico da porcentagem salarial de professores por rede

A partir do gráfico anterior, notamos claramente que a faixa possuidora de menos docentes com ensino superior é a esfera federal. Agora, para clarificar o quão mais esses profissionais ganham em relação as outras categorias, vamos imaginar um salário médio total como sendo a soma dos salários médios em cada categoria, ou seja, usando o mesmo conjunto anterior:

Definimos que o salário médio total é:

Escolhendo os dados a serem analisados

Vamos então gerar um gráfico de setores onde cada setor representa o remuneração média para cada uma das categorias de rede de ensino que estamos analisando.

Gerando o gráfico de setores da porcentagem salarial

Mapa do Brasil (Municípios)

Durante o relatório foi importante evidenciar a possibilidade de acesso dos jovens estudantes a laboratórios de ciências e de informática. Para criar uma noção clara de como essa distribuição não abrange tantos estudantes, usei a biblioteca ploty.express para construir uma mapa do Brasil. A princípio, neste mapa ficará evidente quantos munícipios existem no Brasil e, posteriormente, será construído um outro mapa mostrando os municípios nos quais existem escolas que possuam algum laboratório de ciências ou de informática.

Escolhendo os dados a serem analisados

Para que possamos identificar todos os munícipos existentes no mapa do Brasil que será gerado, precisamos dos valores da latitude e da longitude de cada um destes municípios. Para isto, vamos carregar um arquivo csv contendo essas informações na variável 'municipios_data'. O arquivo csv contendo essas informações dos municípios foi criado com base nos dados disponibilizados pelo IBGE, e pode ser encontrado no link [https://github.com/kelvins/Municipios-Brasileiros/blob/main/README.md]. Observando as linhas iniciais desses dados temos:

Gerando o mapa do Brasil com os municípios brasileiros

No trecho de código a seguir, 'scatter_mapbox' será responsável por gerar o mapa, 'plotando' neste diversos pontos coloridos, que identificam os municípios brasileiros. As coordenadas (latitude e longitude) desses pontos se encontram no data frame 'municipios_data' que foi passado como argumento para esta função. Adicionalmente, setamos 'lat' = latitude e 'lon' = longitude, para que as colunas de 'municipios_data' contendo as informações da latitude e longitude sejam reconhecidas. Assim, os pontos podem ser corretamente marcados.

Mapa do Brasil (Municípios com Laboratórios)

Agora, para demonstrar a diferença entre quantos munícipios existem no Brasil, e quantos são aqueles nos quais existe ao menos uma escola que possua um laboratório de ciências ou de informática, vamos fazer uma análise conjunta de duas bases de dados. Primeiro a partir dos dados encontrados em 'basedosdados.br_inep_censo_escolar.escola', vamos analisar: quais escolas possuem pelo menos um laboratório de ciências ou de informática, e qual o código de identificação do município no qual essa escola se encontra. Salvando as informações de várias escolas do Brasil na variável 'laboratório_data' e observando algumas de suas linhas:

Escolhendo os dados a serem analisados

Agora, vamos localizar em quais destas escolas existe pelo menos um laboratório. A seguir, criamos um conjunto com os identificadores dos municípios de todas essas escolas e verificamos se possuímos informações de todos esses municípios na base de dados que indica a latitude e a longitude destes.

Uma vez confirmado o fato de que todos os munícipios que desejamos plotar no gráfico possuem as coordenadas conhecidas, vamos criar um dataframe apenas com estas coordenas. Seria possível aqui também somente retirar de 'municipios_data' aqueles municípios cujas coordenadas não estão presentes em 'id_municipio_com_lab', porém para isto seria preciso percorrer linearmente cada uma das linhas do dataframe original ('municipios_data') e, para cada linha, verificar se as coordendas estão presentes em 'id_municipio_com_lab'. Esta técnica, entretanto, certamente resultaria numa complexidade elevada.

Logo, optei por criar um novo dataframe com as informações desejadas: 'nome', 'latitude', 'longitude', 'possui laboratorio'. Como a complexidade de consulta do nome de uma cidade em 'municipios_data' através das coordenadas é O(1), temos uma maneira mais eficiente de resolver o problema. Assim:

Agora que conhecemos todos os municípios nos quais existe pelo menos uma escola com laboratório, podemos usar esta nova informação (municipios_com_lab_data) para plotar um gráfico que destaque apenas tais municípios. Assim, será possível perceber a disparidade entre quantos municípios existem e quantos oferecem laboratório aos seus alunos.

Gerando o mapa dos municípios com laboratório